home *** CD-ROM | disk | FTP | other *** search
- /************************************/
- /* File: HandleTheMenus
- Function: Handles menu
- initialization selections. */
- /************************************/
-
- /************************************/
- /* #include files */
- #include "Demo.h"
-
- /* constants */
- /* Menus */
- #define AppleMenuID 1001
- #define Item_About_Transition 1
-
- #define FileMenuID 1002
- #define Item_Quit 1
-
- #define EditMenuID 1003
- #define Item_Undo 1
- #define Item_Cut 3
- #define Item_Copy 4
- #define Item_Paste 5
-
- #define OptionsMenuID 1004
- #define DirectionMenuID 10
-
- #define PartitionMenuID 11
-
- #define CopyMenuID 12
-
- #define IrisSubMenuID 13
- #define FadeSubMenuID 14
-
- /* External variables and functions */
- extern void D_About(void);
-
- /* Global variables and function prototypes */
- void InitMyMenus(void);
- void HandleMenu(char *doneFlag, short theMenu, short theItem);
- void UpdateMenu();
-
- MenuHandle AppleMenu, FileMenu, EditMenu, OptionsMenu;
- MenuHandle DirectionMenu, PartitionMenu, CopyMenu;
- MenuHandle IrisSubMenu, FadeSubMenu;
-
- /************************************/
- /* void InitMyMenus()
- initializes the menus */
- /************************************/
- void InitMyMenus()
- {
- ClearMenuBar();
-
- AppleMenu = GetMenu(AppleMenuID);
- InsertMenu (AppleMenu,0);
- AddResMenu(AppleMenu,'DRVR');
-
- FileMenu = GetMenu(FileMenuID);
- InsertMenu (FileMenu,0);
-
- EditMenu = GetMenu(EditMenuID);
- InsertMenu (EditMenu,0);
-
- OptionsMenu = GetMenu(OptionsMenuID);
- InsertMenu (OptionsMenu,0);
-
- DirectionMenu = GetMenu(DirectionMenuID);
- InsertMenu (DirectionMenu,-1);
-
- PartitionMenu = GetMenu(PartitionMenuID);
- InsertMenu (PartitionMenu,-1);
-
- CopyMenu = GetMenu(CopyMenuID);
- InsertMenu (CopyMenu,-1);
-
- IrisSubMenu = GetMenu(IrisSubMenuID);
- InsertMenu (IrisSubMenu, -1);
-
- FadeSubMenu = GetMenu(FadeSubMenuID);
- InsertMenu(FadeSubMenu, -1);
-
- DrawMenuBar();
- } /* void InitMyMenus() */
-
- /************************************/
- /* HandleMenu(doneFlag,theMenu,theItem)
- handles menu selection */
- /************************************/
- void HandleMenu(doneFlag,theMenu,theItem )
- char *doneFlag;
- short theMenu,theItem;
- {
- GrafPtr SavePort;
- Str255 DAName;
- short DNA;
- char BoolHolder;
- Rect tempRect = {145, 10, 300, 210};
-
- switch (theMenu) { /* menu switch */
- case DirectionMenuID:
- GetPort(&SavePort);
- SetPort(MyWindow);
- InvalRect(&tempRect);
- SetPort(SavePort);
- CheckItem(DirectionMenu, dChk, FALSE);
- dChk = theItem;
- CheckItem(DirectionMenu, dChk, TRUE);
- if ((theItem == 7) || (theItem == 8)) {
- CheckItem(CopyMenu, cChk, FALSE);
- cChk = 1;
- wipeMode = srcCopy;
- CheckItem(CopyMenu, cChk, TRUE);
- }
- break;
-
- case PartitionMenuID:
- case IrisSubMenuID:
- case FadeSubMenuID:
- GetPort(&SavePort);
- SetPort(MyWindow);
- InvalRect(&tempRect);
- SetPort(SavePort);
- CheckItem(PartitionMenu, pChk, FALSE);
- CheckItem(IrisSubMenu, pChk, FALSE);
- CheckItem(FadeSubMenu, pChk, FALSE);
- pChk = theItem;
- CheckItem(PartitionMenu, pChk, TRUE);
- CheckItem(IrisSubMenu, pChk, TRUE);
- CheckItem(FadeSubMenu, pChk, TRUE);
- switch (theItem) {
- case 1:
- wipePart = 1;
- break;
- case 2:
- wipePart = 2;
- break;
- case 3:
- wipePart = 5;
- break;
- case 4:
- wipePart = 10;
- break;
- default:
- wipePart = 1;
- break;
- }
- break;
-
- case CopyMenuID:
- GetPort(&SavePort);
- SetPort(MyWindow);
- InvalRect(&tempRect);
- SetPort(SavePort);
- CheckItem(CopyMenu, cChk, FALSE);
- cChk = theItem;
- CheckItem(CopyMenu, cChk, TRUE);
- switch (theItem) {
- case 1:
- wipeMode = srcCopy;
- break;
- case 2:
- wipeMode = srcOr;
- break;
- case 3:
- wipeMode = srcXor;
- break;
- case 4:
- wipeMode = srcBic;
- break;
- case 5:
- wipeMode = notSrcCopy;
- break;
- case 6:
- wipeMode = notSrcOr;
- break;
- case 7:
- wipeMode = notSrcXor;
- break;
- case 8:
- wipeMode = notSrcBic;
- break;
- default:
- wipePart = srcCopy;
- break;
- }
- break;
-
- case AppleMenuID:
- switch (theItem) {
- case Item_About_Transition:
- D_About();
- break;
- default:
- GetPort(&SavePort);
- GetItem(AppleMenu, theItem, &DAName);
- DNA = OpenDeskAcc(DAName);
- SetPort(SavePort);
- break;
- }
- break;
-
- case FileMenuID:
- *doneFlag = TRUE;
- break;
-
- case EditMenuID:
- BoolHolder = SystemEdit (theItem - 1);
- break;
-
- default:
- break;
- } /* menu switch */
-
- HiliteMenu(0);
- } /* HandleMenu(doneFlag,theMenu,theItem) */
-
- void UpdateMenu()
- {
- EnableItem(CopyMenu, 0);
- switch (dChk) {
- case 1:
- case 2:
- case 3:
- case 4:
- SetItem(OptionsMenu, 2, "\pPartitions");
- SetItemMark(OptionsMenu, 2, (char) PartitionMenuID);
- break;
- case 5:
- SetItem(OptionsMenu, 2, "\pIris Shape");
- SetItemMark(OptionsMenu, 2, (char) IrisSubMenuID);
- break;
- case 6:
- SetItem(OptionsMenu, 2, "\pFade Type");
- SetItemMark(OptionsMenu, 2, (char) FadeSubMenuID);
- break;
- case 7:
- case 8:
- DisableItem(CopyMenu, 0);
- SetItem(OptionsMenu, 2, "\pPartitions");
- SetItemMark(OptionsMenu, 2, (char) PartitionMenuID);
- break;
- }
- }
-